//
//  RCEmptyViewOC.h
//  RedianClient
//
//  Created by ayi on 2020/7/23.
//  Copyright © 2020 bsln. All rights reserved.
//

#import "LYEmptyView.h"

typedef enum : NSUInteger {
    RCEmpty_ErrorType_NetWork,
    RCEmpty_ErrorType_404,
    RCEmpty_ErrorType_Login,
    RCEmpty_ErrorType_Error,
} RCEmpty_Type;



typedef void(^RCEmptyViewOCErrorBlock)(NSError *error);




@interface RCEmptyViewOC : LYEmptyView


/**
 
 预设了图片，默认标题为暂无数据
 
 */
+ (RCEmptyViewOC *)dataEmpty;

/**
 
 预设了图片，默认标题为暂无数据
 
 */
+ (RCEmptyViewOC *)dataEmpty:(RCEmpty_Type )type;

/**
 
 预设了图片，标题自写
 
 */
+ (RCEmptyViewOC *)dataEmpty:(RCEmpty_Type )type andEmptyStr:(NSString *)emptystr;

/// 预设了图片
/// @param type 预设类型
/// @param title 标题
/// @param detail 副标题
/// @param btnTitle 按钮 为空时将隐藏
/// @param clickAction 按钮事件 为空时按钮也将隐藏
+ (RCEmptyViewOC *)dataEmpty:(RCEmpty_Type )type
                    andTitle:(NSString *)title
                   andDetail:(NSString *)detail
                 andBtnTitle:(NSString *)btnTitle
                 andBtnBlock:(dispatch_block_t)clickAction
               andErrorBlock:(RCEmptyViewOCErrorBlock )errorAction;

/// 自定义空页面
/// @param img 图片
/// @param title 标题
/// @param detail 副标题
/// @param btnTitle 按钮 为空时将隐藏
/// @param clickAction 按钮事件 为空时按钮也将隐藏
/// @param errorAction 错误事件统一处理
+ (RCEmptyViewOC *)dataEmptyCustomImg:(UIImage *)img
                             andTitle:(NSString *)title
                            andDetail:(NSString *)detail
                          andBtnTitle:(NSString *)btnTitle
                          andBtnBlock:(dispatch_block_t)clickAction
                        andErrorBlock:(RCEmptyViewOCErrorBlock )errorAction;

/// 自定义空页面内容
/// @param view 自定义页面
+ (RCEmptyViewOC *)emptyCustomView:(UIView *)view;



//开始loading
- (void)rc_startLoading;
//结束loading
- (void)rc_endLoading;

//显示
- (void)rc_showEmptyview;
//隐藏
- (void)rc_hideEmptyview;
/**
 
 是否完全覆盖父视图
 
 */
@property (nonatomic, assign) BOOL cover_Superview;
/**

是否修复由于设置 scrollView的contentInset 造成的 x 坐标 问题-----第一版临时处理某种情况下问题

*/
@property (nonatomic, assign) BOOL rc_fixContentInsetViewX;
/**
 
 需要处理错误可传，不使用需置空
 
 */
@property (nonatomic, strong) NSError *error;

/**
 
 传入了type 以及 错误状态后：
 图片会暂时变成预设图片
 标题会变成状态码，
 副标题会变成详情
 若需要传入新的按钮名称，或事件 btnTitle 必不可为空
 action 作用于当前事件，error 变成了nil action 事件也将丢弃
 
 传入nil 后，状态回退到初始设置的值，按钮事件回归
 
 */
- (void)dataEmptyErrorType:(RCEmpty_Type )type
                 WithError:(NSError *)error
               andBtnTitle:(NSString *)btnTitle;

- (void)dataEmptyErrorType:(RCEmpty_Type )type
                 WithError:(NSError *)error
               andBtnTitle:(NSString *)btnTitle
              andBtnAction:(dispatch_block_t )action;

- (void)dataEmptyWithError:(NSError *)error
                    andImg:(UIImage *)errorImg
               andBtnTitle:(NSString *)btnTitle;

- (void)dataEmptyWithError:(NSError *)error
                    andImg:(UIImage *)errorImg
               andBtnTitle:(NSString *)btnTitle
              andBtnAction:(dispatch_block_t )action;

@end

